﻿Public Class ThuChiCoDinhUC
    Public Delegate Sub ButtonDongHandle()
    Public Event ButtonDongClick As ButtonDongHandle
    Public Delegate Sub ButtonThemHandle(ByVal dongmoi As DataRow, ByVal kieu As Integer)
    Public Event ButtonLuuClick As ButtonThemHandle
    Public DSTKNH As DataTable = New DataTable()
    Public DSLoaiThuChi As DataTable = PhanLoaiThuChiDAO.GetAllPhanLoaiThuChi()
    Public DSUser As DataTable = UsersDAO.GetAll()
    Public Flag As Integer = 0  ' 0:  them, 1: sua
    Public id As Integer ' id cua doi tuong duoc sua
    Public tab As String ' tab dang duoc chon
    Private Sub ThuChiCoDinhUC_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            DSTKNH = TaiKhoanNganHangDAO.GetAll(MainForm.current_user.MaUser)
            cb_loai_tk.DataSource = DSTKNH
            cb_loai_tk.DisplayMember = "Ten"
            cb_loai_tk.ValueMember = "id"

            cb_danhmuc_thu.DataSource = DSLoaiThuChi
            cb_danhmuc_thu.DisplayMember = "ten_loai"
            cb_danhmuc_thu.ValueMember = "id"

            cb_nguoi_thu.DataSource = DSUser
            cb_nguoi_thu.DisplayMember = "fullname"
            cb_nguoi_thu.ValueMember = "MaUser"

            lb_nguoi_tao.Text = MainForm.current_user.Fullname
        Catch ex As Exception
        End Try

    End Sub

    Private Sub CheckLoi()
        If tb_sotien.Text.Trim().Length = 0 Then
            MessageBox.Show("Số tiền không được để trống.", "Thông Báo", MessageBoxButtons.OK)
            tb_sotien.Focus()
            Return
        End If
        If Not IsNumeric(tb_sotien.Text) Then
            MessageBox.Show("Số tiền phải là ký số.", "Thông Báo", MessageBoxButtons.OK)
            tb_sotien.Focus()
            Return
        End If
        If cb_loai_tk.SelectedValue = -1 Then
            MessageBox.Show("Hãy chọn một loại tài khoản thu.", "Thông Báo", MessageBoxButtons.OK)
            cb_loai_tk.Focus()
            Return
        End If
        If cb_danhmuc_thu.SelectedValue = -1 Then
            MessageBox.Show("Hãy chọn loại danh mục thu.", "Thông Báo", MessageBoxButtons.OK)
            cb_danhmuc_thu.Focus()
            Return
        End If
        If tb_chitiet.Text.Trim().Length = 0 Then
            MessageBox.Show("Chi tiết thu không được để trống.", "Thông Báo", MessageBoxButtons.OK)
            tb_chitiet.Focus()
            Return
        End If
        If cb_nguoi_thu.SelectedValue = -1 Then
            MessageBox.Show("Hãy chọn người thu.", "Thông Báo", MessageBoxButtons.OK)
            cb_nguoi_thu.Focus()
            Return
        End If
        If Not IsNumeric(tb_dathu.Text) Then
            MessageBox.Show("Tháng đã thu phải là ký số.", "Thông Báo", MessageBoxButtons.OK)
            tb_dathu.Focus()
            Return
        End If
    End Sub
    Private Sub bt_luu_Click(sender As System.Object, e As System.EventArgs) Handles bt_luu.Click
        CheckLoi()
        If tab = "thu" Then  'Thao tac tren tab thu co dinh
            If Flag = 0 Then
                Dim tccd As ThuCoDinhDBO = New ThuCoDinhDBO()
                tccd.sotien = Double.Parse(tb_sotien.Text)
                tccd.id_loai_tk = Integer.Parse(cb_loai_tk.SelectedValue)
                tccd.id_danhmuc = Integer.Parse(cb_danhmuc_thu.SelectedValue)
                tccd.chitiet = tb_chitiet.Text
                tccd.ngaythu = Integer.Parse(nud_ngaythu.Value)
                tccd.id_user_tao = Integer.Parse(MainForm.current_user.MaUser)
                tccd.id_user_thu = Integer.Parse(cb_nguoi_thu.SelectedValue)
                tccd.dathu = Integer.Parse(tb_dathu.Text)
                If ThuChiCoDinh.DSThu.Rows.Count > 0 Then
                    For i As Integer = 0 To ThuChiCoDinh.DSThu.Rows.Count - 1
                        If tccd.sotien = ThuChiCoDinh.DSThu.Rows(i).Item(1) And tccd.id_loai_tk = ThuChiCoDinh.DSThu.Rows(i).Item(2) And tccd.id_danhmuc = ThuChiCoDinh.DSThu.Rows(i).Item(4) And tccd.ngaythu = ThuChiCoDinh.DSThu.Rows(i).Item(7) And tccd.id_user_thu = ThuChiCoDinh.DSThu.Rows(i).Item(10) Then
                            MessageBox.Show("Đối tượng thu này đã tồn tại, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                            Return
                        End If
                    Next
                End If
                Dim result As Integer = New Integer()
                result = ThuChiCoDinhDAO.InsertThuCoDinh(tccd)
                If result > 0 Then
                    Dim newrow As DataRow = ThuChiCoDinh.DSThu.NewRow()
                    newrow(0) = result
                    newrow(1) = tccd.sotien
                    newrow(2) = Integer.Parse(cb_loai_tk.SelectedValue)
                    newrow(3) = cb_loai_tk.GetItemText(cb_loai_tk.SelectedItem)
                    newrow(4) = tccd.id_danhmuc
                    newrow(5) = cb_danhmuc_thu.GetItemText(cb_danhmuc_thu.SelectedItem)
                    newrow(6) = tccd.chitiet
                    newrow(7) = tccd.ngaythu
                    newrow(8) = tccd.id_user_tao
                    newrow(9) = MainForm.current_user.Fullname
                    newrow(10) = tccd.id_user_thu
                    newrow(11) = cb_nguoi_thu.GetItemText(cb_nguoi_thu.SelectedItem)
                    newrow(12) = tccd.dathu
                    RaiseEvent ButtonLuuClick(newrow, 0)
                    Flag = 0
                Else
                    MessageBox.Show("Có lỗi khi thêm dữ liệu vào Database, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                End If

            Else
                Dim tccd As ThuCoDinhDBO = New ThuCoDinhDBO()
                tccd.sotien = Double.Parse(tb_sotien.Text)
                tccd.id_loai_tk = Integer.Parse(cb_loai_tk.SelectedValue)
                tccd.id_danhmuc = Integer.Parse(cb_danhmuc_thu.SelectedValue)
                tccd.chitiet = tb_chitiet.Text
                tccd.ngaythu = Integer.Parse(nud_ngaythu.Value)
                tccd.id_user_tao = Integer.Parse(MainForm.current_user.MaUser)
                tccd.id_user_thu = Integer.Parse(cb_nguoi_thu.SelectedValue)
                tccd.dathu = Integer.Parse(tb_dathu.Text)
                For i As Integer = 0 To ThuChiCoDinh.DSThu.Rows.Count - 1
                    If tccd.sotien = ThuChiCoDinh.DSThu.Rows(i).Item(1) And tccd.id_loai_tk = ThuChiCoDinh.DSThu.Rows(i).Item(2) And tccd.id_danhmuc = ThuChiCoDinh.DSThu.Rows(i).Item(4) And tccd.ngaythu = ThuChiCoDinh.DSThu.Rows(i).Item(7) And tccd.id_user_thu = ThuChiCoDinh.DSThu.Rows(i).Item(10) Then
                        MessageBox.Show("Đối tượng thu này đã tồn tại, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                        Return
                    End If
                Next
                Dim result As Integer = ThuChiCoDinhDAO.SuaThuCodinh(tccd, id)
                If result = 1 Then
                    Dim newrow As DataRow = ThuChiCoDinh.DSThu.NewRow()
                    newrow(0) = result
                    newrow(1) = tccd.sotien
                    newrow(2) = Integer.Parse(cb_loai_tk.SelectedValue)
                    newrow(3) = cb_loai_tk.GetItemText(cb_loai_tk.SelectedItem)
                    newrow(4) = tccd.id_danhmuc
                    newrow(5) = cb_danhmuc_thu.GetItemText(cb_danhmuc_thu.SelectedItem)
                    newrow(6) = tccd.chitiet
                    newrow(7) = tccd.ngaythu
                    newrow(8) = tccd.id_user_tao
                    newrow(9) = MainForm.current_user.Fullname
                    newrow(10) = tccd.id_user_thu
                    newrow(11) = cb_nguoi_thu.GetItemText(cb_nguoi_thu.SelectedItem)
                    newrow(12) = tccd.dathu
                    RaiseEvent ButtonLuuClick(newrow, 1)
                    Flag = 1
                Else
                    MessageBox.Show("Có lỗi khi cập nhật dữ liệu vào Database, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                End If
            End If
        Else
            If tab = "chi" Then ' thao tac tren tab chi
                If Flag = 0 Then
                    Dim cccd As ChiCoDinh = New ChiCoDinh()
                    cccd.sotien = Double.Parse(tb_sotien.Text)
                    cccd.id_loai_tk = Integer.Parse(cb_loai_tk.SelectedValue)
                    cccd.id_danhmuc = Integer.Parse(cb_danhmuc_thu.SelectedValue)
                    cccd.chitiet = tb_chitiet.Text
                    cccd.ngaychi = Integer.Parse(nud_ngaythu.Value)
                    cccd.id_user_tao = Integer.Parse(MainForm.current_user.MaUser)
                    cccd.id_user_chi = Integer.Parse(cb_nguoi_thu.SelectedValue)
                    cccd.dachi = Integer.Parse(tb_dathu.Text)
                    If ThuChiCoDinh.DSChi.Rows.Count > 0 Then
                        For i As Integer = 0 To ThuChiCoDinh.DSChi.Rows.Count - 1
                            If cccd.sotien = ThuChiCoDinh.DSChi.Rows(i).Item(1) And cccd.id_loai_tk = ThuChiCoDinh.DSChi.Rows(i).Item(2) And cccd.id_danhmuc = ThuChiCoDinh.DSChi.Rows(i).Item(4) And cccd.ngaychi = ThuChiCoDinh.DSChi.Rows(i).Item(7) And cccd.id_user_chi = ThuChiCoDinh.DSChi.Rows(i).Item(10) Then
                                MessageBox.Show("Đối tượng thu này đã tồn tại, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                                Return
                            End If
                        Next
                    End If
                    Dim result As Integer = New Integer()
                    result = ThuChiCoDinhDAO.InsertChiCoDinh(cccd)
                    If result > 0 Then
                        Dim newrow As DataRow = ThuChiCoDinh.DSChi.NewRow()
                        newrow(0) = result
                        newrow(1) = cccd.sotien
                        newrow(2) = Integer.Parse(cb_loai_tk.SelectedValue)
                        newrow(3) = cb_loai_tk.GetItemText(cb_loai_tk.SelectedItem)
                        newrow(4) = cccd.id_danhmuc
                        newrow(5) = cb_danhmuc_thu.GetItemText(cb_danhmuc_thu.SelectedItem)
                        newrow(6) = cccd.chitiet
                        newrow(7) = cccd.ngaychi
                        newrow(8) = cccd.id_user_tao
                        newrow(9) = MainForm.current_user.Fullname
                        newrow(10) = cccd.id_user_chi
                        newrow(11) = cb_nguoi_thu.GetItemText(cb_nguoi_thu.SelectedItem)
                        newrow(12) = cccd.dachi
                        RaiseEvent ButtonLuuClick(newrow, 0)
                        Flag = 0
                    Else
                        MessageBox.Show("Có lỗi khi thêm dữ liệu vào Database, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                    End If

                Else
                    Dim cccd As ChiCoDinh = New ChiCoDinh()
                    cccd.sotien = Double.Parse(tb_sotien.Text)
                    cccd.id_loai_tk = Integer.Parse(cb_loai_tk.SelectedValue)
                    cccd.id_danhmuc = Integer.Parse(cb_danhmuc_thu.SelectedValue)
                    cccd.chitiet = tb_chitiet.Text
                    cccd.ngaychi = Integer.Parse(nud_ngaythu.Value)
                    cccd.id_user_tao = Integer.Parse(MainForm.current_user.MaUser)
                    cccd.id_user_chi = Integer.Parse(cb_nguoi_thu.SelectedValue)
                    cccd.dachi = Integer.Parse(tb_dathu.Text)
                    For i As Integer = 0 To ThuChiCoDinh.DSChi.Rows.Count - 1
                        If cccd.sotien = ThuChiCoDinh.DSChi.Rows(i).Item(1) And cccd.id_loai_tk = ThuChiCoDinh.DSChi.Rows(i).Item(2) And cccd.id_danhmuc = ThuChiCoDinh.DSChi.Rows(i).Item(4) And cccd.ngaychi = ThuChiCoDinh.DSChi.Rows(i).Item(7) And cccd.id_user_chi = ThuChiCoDinh.DSChi.Rows(i).Item(10) Then
                            MessageBox.Show("Đối tượng thu này đã tồn tại, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                            Return
                        End If
                    Next
                    Dim result As Integer = ThuChiCoDinhDAO.SuaChiCodinh(cccd, id)
                    If result = 1 Then
                        Dim newrow As DataRow = ThuChiCoDinh.DSThu.NewRow()
                        newrow(0) = result
                        newrow(1) = cccd.sotien
                        newrow(2) = Integer.Parse(cb_loai_tk.SelectedValue)
                        newrow(3) = cb_loai_tk.GetItemText(cb_loai_tk.SelectedItem)
                        newrow(4) = cccd.id_danhmuc
                        newrow(5) = cb_danhmuc_thu.GetItemText(cb_danhmuc_thu.SelectedItem)
                        newrow(6) = cccd.chitiet
                        newrow(7) = cccd.ngaychi
                        newrow(8) = cccd.id_user_tao
                        newrow(9) = MainForm.current_user.Fullname
                        newrow(10) = cccd.id_user_chi
                        newrow(11) = cb_nguoi_thu.GetItemText(cb_nguoi_thu.SelectedItem)
                        newrow(12) = cccd.dachi
                        RaiseEvent ButtonLuuClick(newrow, 1)
                        Flag = 1
                    Else
                        MessageBox.Show("Có lỗi khi cập nhật dữ liệu vào Database, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK)
                    End If

                End If
            End If
        End If
    End Sub

    Private Sub bt_dong_Click(sender As System.Object, e As System.EventArgs) Handles bt_dong.Click
        RaiseEvent ButtonDongClick()
    End Sub
End Class
